#include <stdio.h>
#include <string.h>
#include <sys/socket.h>
#include "server.h"

int log_in(int sock_fd)
{
	int tmp;
	char name[NAME_LEN_MAX + 1];
	char passwd[PASSWD_LEN_MAX + 1];
	
	recv(sock_fd, &tmp, sizeof(int), 0);
	memset(name, 0, NAME_LEN_MAX);
	recv(sock_fd, name, tmp, 0);
	
	recv(sock_fd, &tmp, sizeof(int), 0);
	memset(passwd, 0, PASSWD_LEN_MAX);
	recv(sock_fd, passwd, tmp, 0);

	user *u = get_user(name);
	if ( u == NULL) 
	{
		tmp = NAME_NOT_EXIST;
		send(sock_fd, &tmp, sizeof(int), 0);
	} 
	else if ( strcmp((*u).passwd, passwd) !=0) 
	{
		tmp = PASSWD_INCORRECT;
		send(sock_fd, &tmp, sizeof(int), 0);		
	} 
	else
	{
		u->sock_fd=sock_fd;
		tmp = 0;
		send(sock_fd, &tmp, sizeof(int), 0);
	}
	printf("log_in:\t%d\n", tmp);
}

int log_in2(int sock_fd)
{
	int tmp;
	char name[NAME_LEN_MAX + 1];
	
	recv(sock_fd, &tmp, sizeof(int), 0);
	memset(name, 0, NAME_LEN_MAX +1);
	recv(sock_fd, name, tmp, 0);

	user *u = get_user(name);
	if ( u == NULL) 
	{
		tmp = NAME_NOT_EXIST;
		send(sock_fd, &tmp, sizeof(int), 0);
	} 
	else
	{
		u->sock_fd2=sock_fd;
		tmp = 0;
		send(sock_fd, &tmp, sizeof(int), 0);
	}
	printf("log_in2:\t%d\n", tmp);
}

